package com.taoshen.entity;

import java.util.List;

import lombok.*;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.Document;

@Setter
@Getter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
// 通过该注解来指定当前实体类对应库中哪张表
@Document(collection="t_person")
public class Person {
	/**
	 * 主键类型只能为：String，ObjectId,BigInteger
	 * 加上@Id之后 会自动隐射到表中_id 因为mongo中默认主键id是UUID
	 * 所以一般都是String型
	 */
	@Id
	private String id;

	@Indexed
	private String name;

	private int age;

	/**
	 * 表示bean之间的相互注入 Order也对应着库中某张表
	 * 通过主键id进行关联 Person只会记录Order的主键id
	 * 然后会通过主键id再从Order表中将订单给查询出来
	 */
	@DBRef
	private List<Order> orders;
}
